/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntidadesController;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Yan
 */
public class Localizacao {

    //private String idlocalizacao = "";
    private String predio_descricao = "";
    private String setor_descricao = "";
    private String sala_descricao = "";
    private SQLException erro = new SQLException();
    static Connection conexao = null;
    static Statement estado = null;
    static ResultSet rs;
    private boolean render=false;
    private String msgerro;

    public boolean isRender() {
        return render;
    }

    public void setRender(boolean render) {
        this.render = render;
    }
    public String getMsgerro() {
        return msgerro;
    }

    public void setMsgerro(String msgerro) {
        this.msgerro = msgerro;
    }

    public Localizacao() {
        conexao = new Conexao().Acesso();
    }

    public String inserir() throws SQLException {
        String result_inserir = "failure";
        /*idlocalizacao serial NOT NULL,
        predio_descricao character varying(20),
        setor_descricao character varying(20),
        sala_descricao character varying(20),*/
        try {
            estado = conexao.createStatement();

            estado.execute("INSERT INTO localizacao(predio_descricao, setor_descricao, sala_descricao) VALUES ('" + predio_descricao + "','" + setor_descricao + "','" + sala_descricao + "')");
            estado.close();
            result_inserir = "success";
            render = false;
        } catch (SQLException e) {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();

            if (msgerro.contains("un_localizacaounique")&&msgerro.contains("unicidade"))
            {msgerro = "Essa localização ja está cadastrada!";}
          //  estado.execute("ROLLBACK");
            estado.close();
            result_inserir = "failure";
            render = true;
        }
        return result_inserir;
    }

    public String getErro() {
        return erro.getMessage();
    }

    public String getPredio_descricao() {
        return predio_descricao;
    }

    public String getSala_descricao() {
        return sala_descricao;
    }

    public String getSetor_descricao() {
        return setor_descricao;
    }
    /*
    public String buscar() throws SQLException {
    String result_busca = "failure";
    try {
    estado = conexao.createStatement();
    rs = estado.executeQuery("SELECT * FROM localizacao WHERE idlocalizacao = '" + this.idlocalizacao + "'");
    if (rs.next()) {
    predio_descricao = rs.getString(2);
    setor_descricao = rs.getString(3);
    sala_descricao = rs.getString(4);
    }
    rs.close();
    estado.close();
    } catch (SQLException e) {
    }
    return result_busca;
    }

    public String editar() {
    String result_inserir = "failure";
    try {
    estado = conexao.createStatement();
    estado.execute("update curso set predio_descricao = '" + predio_descricao + "' where idlocalizacao ='" + idlocalizacao + "'");
    estado.execute("update curso set setor_descricaoo = '" + setor_descricao + "' where idlocalizacao ='" + idlocalizacao + "'");
    estado.execute("update curso set sala_descricao = '" + sala_descricao + "' where idlocalizacao ='" + idlocalizacao + "'");
    estado.close();
    result_inserir = "success";
    } catch (SQLException e) {
    result_inserir = "failure";
    }
    return result_inserir;
    }*/

    public List<String> getListaPredio_descricao() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM predio");
        while (rs.next() == true) {
            predio_descricao = rs.getString(1);
            items.add(predio_descricao);
        }
        return items;
    }

    public void setPredio_descricao(String predio_descricao) {
        this.predio_descricao = predio_descricao;
    }

    public List<String> getListaSetor_descricao() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM setor");
        while (rs.next() == true) {
            setor_descricao = rs.getString(1);
            items.add(setor_descricao);
        }
        return items;
    }

    public void setSetor_descricao(String setor_descricao) {
        this.setor_descricao = setor_descricao;
    }

    public List<String> getListaSala_descricao() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM sala");
        while (rs.next() == true) {
            sala_descricao = rs.getString(1);
            items.add(sala_descricao);
        }
        return items;
    }

    public void setSala_descricao(String sala_descricao) {
        this.sala_descricao = sala_descricao;
    }
}
